-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support destructuring variable declarator within TS namespace #12760
Conversation
const M1 = {} | ||
export module M1 {} | ||
const { M2 } = {} | ||
export module M2 {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Babel currently throws for
const { M2 } = {}
export module M2 {}
because M2
is never added to names
, and TSModuleDeclaration
handler will add M2
variable declarations which collide with const { M2 } = {}
.
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 0079773:
|
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/39704/ |
Wait, approved too early |
The CI error is related |
This PR should be reviewed by commits. It supports general declarator via
t.getBindingIdentifiers
. The following snippetis now transformed to
Unlike TypeScript which also transpiles patterns even if we target to
ESNext
, Babel does not transpile and instead it will delegate to@babel/plugin-transform-destructuring
for further transpilation if required.